//
// Created by lenovo on 2016/12/23 0023.
//题目：删除一个字符串中的指定字母，如：字符串 "aca"，删除其中的 a 字母。
//
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//刪除字符串中指定字符的函數
char* deleteCharacters(char* str,char* charset){
    int hash[256];
    //C/C++語言中null和NULL不是一回事，NULL才是空指針。
    if(NULL == charset){
        return str;
    }
    for (int i = 0; i < 256; ++i) {
        hash[i] = 0;
    }
    for (int j = 0; j <strlen(charset); ++j) {
        hash[charset[j]] = 1;
    }
    int currentIndex =0;
    for (int k = 0; k < strlen(str); ++k) {
        if (!hash[str[k]]){
            str[currentIndex++] = str[k];
        }
    }
    str[currentIndex] = '\0';//字符串終止符號
    return str;
}
int main(){
    char s[2] = "a";//要刪除的字符，因爲char數組表示string形式，其長度就是實際字符個數+1，因爲它有一個末尾符號
    char s2[5] = "aca";//目標字符串
    printf("%s \n ",deleteCharacters(s2,s));
    return 0;
}
